package com.txzt.gaea.business.project.service;

import com.txzt.gaea.business.project.domain.model.ProjectFundExpenseRequest;
import com.txzt.gaea.business.project.domain.vo.ProjectFERLedger;
import com.txzt.gaea.business.project.domain.vo.ProjectFERLedgerDetail;
import com.txzt.gaea.business.project.domain.vo.ProjectFERStats;
import com.txzt.gaea.business.project.domain.vo.ProjectFERStatsDetail;
import com.txzt.gaea.common.base.service.BaseService;
import org.beetl.sql.core.engine.PageQuery;

import java.util.List;

public interface IProjectFERService extends BaseService<ProjectFundExpenseRequest> {

    /**
     * 新增
     * @param pfer
     * @return
     */
    int savePFER(ProjectFundExpenseRequest pfer);

    /**
     * 编辑
     * @param pfer
     * @return
     */
    int updatePFER(ProjectFundExpenseRequest pfer);

    /**
     * 新增
     * @param pfer
     * @return
     */
    Long savePFERForProjectMain(ProjectFundExpenseRequest pfer);

    int updatePFEROnlySave(ProjectFundExpenseRequest pfer);


    /**
     * 撤回
     * @param projectFundExpenseRequest
     * @return
     */
    int revocationPFER(ProjectFundExpenseRequest projectFundExpenseRequest);

    /**
     * 支出填写
     * @param projectFundExpenseRequest
     * @return
     */
    int expenseInfo(ProjectFundExpenseRequest projectFundExpenseRequest);

    void deleteInfo(Long id);

    PageQuery<ProjectFERStats> ProjectFERStatsList(PageQuery<ProjectFERStats> pageQuery);

    List<ProjectFERStatsDetail> getProjectFERStatsDetail(ProjectFERStatsDetail projectFERStatsDetail);

    PageQuery<ProjectFERLedger> ProjectFERLedgerList(PageQuery<ProjectFERLedger> pageQuery);

    List<ProjectFERLedgerDetail> getProjectFERLedgerDetail(ProjectFERLedgerDetail projectFERLedgerDetail);

    /**
     * 查询待审核数量(项目过程经费支出申请)
     * @param projectFund
     * @return
     */
    Long listCheckCount(ProjectFundExpenseRequest projectFund);
}
